package zdream.rockchronicle.core.region;

import com.badlogic.gdx.maps.tiled.TiledMap;

import zdream.control.region.Region;
import zdream.control.core.IDisposable;

/**
 * <p>区域. 一个区域由多个房间组成, 而多个区域可以作为一个关卡.
 * <p>每个区域可以由多个 TMX 文件定义, 而它们可能需要进行拼接工作,
 * 在系统加载时合并成一张大的地图.
 * </p>
 * 
 * @author Zdream
 * @since 0.0.1
 * @date
 *   2019-05-12 (last modified)
 */
public class TmxRegion implements IDisposable {
	public static int BLOCK_WIDTH = 25;
	public static int BLOCK_HEIGHT = 14;

	/**
	 * 名称
	 */
	public Region region;
	
	/**
	 * 指代的 tmx
	 * 在 case 使用时可能为 null
	 */
	public TiledMap tmx;

	/**
	 * 这个 tmx 每一格的各占长宽多少像素.
	 * 一般是 24 或者 16.
	 */
	public short widthPerBlock = 24, heightPerBlock = 24;

	@Override
	public String toString() {
		return String.format("TmxRegion:%s", region == null ? "?" : region.name);
	}

	@Override
	protected void finalize() throws Throwable {
		dispose();
	}

	@Override
	public void dispose() {
		if (this.tmx != null)
			this.tmx.dispose();
	}
}
